package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.service.ItemService;
import com.jt.vo.EasyUITable;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/item")
public class ItemController {
	
	@Autowired
	private ItemService itemService;

	/**
	 * 业务说明:根据分页实现商品查询
	 * url地址:http://localhhost:8091/item/query/?page=1&rows=20
	 * 参数:page,rows
	 * 返回值: EasyUITable
	 */
	@RequestMapping("/query")
	public EasyUITable findItemByPage(Integer page,Integer rows){
		return itemService.findItemByPage(page,rows);
	}

	/**
	 * 业务说明:商品新增
	 * url地址:  http://localhost:8091/item/save
	 * 请求参数:  form表单   item对象接受
	 * 返回值:   SysResult
	 */

	@RequestMapping("/save")
	public SysResult saveItem(Item item,ItemDesc itemDesc) {
//		try {
//			itemService.saveItem(item);
//			return SysResult.success();
//		} catch (Exception e) {
//			e.printStackTrace();
//			return SysResult.fail();
//		}
		itemService.saveItem(item,itemDesc);
		return SysResult.success();
	}

	/**
	 * 完成商品修改操作
	 * url地址:http://localhost:8091/item/update
	 * 参数:  form  表单
	 * 返回值  SysResult对象
	 */

	@RequestMapping("/update")
	public SysResult updateItem(Item item,ItemDesc itemDesc){
		itemService.updateItem(item,itemDesc);
		return SysResult.success();
	}
	/**
	 * url地址:http://localhost:8091/item/delete
	 * 参数   ids:100,101,102
	 * 简化操作:当参数采用 ,号分隔时,会自动转化为数组
	 * 返回值   SysResult对象
	 */
	@RequestMapping("/delete")
	public SysResult deleteItem(Long... ids) {
		itemService.deleteItem(ids);
		return SysResult.success();
	}
	/**
	 * 实现上架和下架的通用操作
	 * url:http://localhost:8091/item/reshelf  上架操作status=1
	 * url:http://localhost:8091/item/instock  下架操作status=2
	 * restFUL 操作方法
	 * URL优化  url:http://localhost:8091/item/updateStatus/ 1,2
	 */
	@RequestMapping("/updateStatus/{status}")
	public SysResult updateStatus(@PathVariable Integer status,Long... ids){
		itemService.updateStatus(status,ids);
		return SysResult.success();
	}
	/**
	 * 根据ID查询分类的名称
	 * url:http://localhost:8091/item/query/item/desc/+data.id
	 * 参数  id
	 * 返回值   SysResult对象(itemDesc对象)
	 */
	@RequestMapping("/query/item/desc/{id}")
	public SysResult findItemDescById(@PathVariable Long id){
		ItemDesc itemDesc = itemService.findItemDescById(id);
		return SysResult.success(itemDesc);
	}
}
